/*
 * @# GalleryService.java 2011-12-23 下午04:21:02
 * 
 * Copyright (C) 2010 - 2011 广州羿安信息科技有限公司
 * Guangzhou ianswer information technology co. ltd.
 * 
 * All rights reserved!
 */
package com.ianswer.px.album.service;

import java.util.List;

import com.ianswer.px.album.entity.Gallery;

/**
 * @author alvin hwang
 */
public interface GalleryService {

	/**
	 * 获取用户定义的所有秀场的相册分类.
	 * 
	 * @param userId
	 *            用户标识.
	 * @return 所有秀场的相册分类列表, 若没有返回null.
	 */
	List<Gallery> queryShowGalleries(Long userId);

	/**
	 * 获取用户定义的所有名品展示的相册分类.
	 * 
	 * @param userId
	 *            用户标识.
	 * @return 所有名品展示的相册分类列表, 若没有返回null.
	 */
	List<Gallery> queryDressGalleries(Long userId);

	/**
	 * 新增相册分类.
	 * 
	 * @param gallery
	 *            相册信息(用户标识, 名称, 时间, ip).
	 * @return 相册分类标识.
	 */
	Long insert(Gallery gallery);

	/**
	 * 更新相册分类的名称.
	 * 
	 * @param userId
	 *            用户标识.
	 * @param galleryId
	 *            相册分类标识.
	 * @param name
	 *            相册分类名称.
	 */
	void update(Long userId, Long galleryId, String name);

	/**
	 * 删除用户定义的某个相册分类, 并更新与其关联的相册, 把其相册分类更改为0(即无关联到分类).
	 * 
	 * @param userId
	 *            用户标识.
	 * @param galleryId
	 *            相册分类标识.
	 */
	void delete(Long userId, Long galleryId);

	/**
	 * 增加相册分类中的相册数目.
	 * 
	 * @param userId
	 *            用户标识.
	 * @param galleryId
	 *            相册分类标识.
	 */
	void incrAlbums(Long userId, Long galleryId);

	/**
	 * 减少相册分类中的相册数目.
	 * 
	 * @param userId
	 *            用户标识.
	 * @param galleryId
	 *            相册分类标识.
	 */
	void decrAlbums(Long userId, Long galleryId);
}
